package cn.edu.henu.team.fragments;

import android.content.Intent;

import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.AdapterView;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.TextView;
import java.util.ArrayList;
import java.util.List;

import cn.edu.henu.team.R;
import cn.edu.henu.team.adapter.MedicineAdapter;
import cn.edu.henu.team.base.BaseFragment;
import cn.edu.henu.team.bean.drugList;
import cn.edu.henu.team.ui.DrugActivity;

public class Medicine_Fragment extends BaseFragment {
    public static final String TAG = "MyFragment";
    private String str;
    private TextView tv ;
    private ListView mdlistview;
    private MedicineAdapter madapter;
    private ArrayList<drugList> mData = new ArrayList<drugList>();
    private EditText et_search;

    @Override
    protected void clickEvents() {

    }

    @Override
    protected int initLayout() {
        return R.layout.fragment_medicine;
    }

    @Override
    protected void initView() {
        mdlistview = mRootView.findViewById(R.id.mdlistview);
        et_search=mRootView.findViewById(R.id.et_medicine_search);
        mData = (ArrayList<drugList>) getArguments().getSerializable(TAG);
        madapter = new MedicineAdapter(getContext(),mData);
        mdlistview.setAdapter(madapter);
        setListeners();
    }

    @Override
    protected void initData() {

    }

    //搜索
    private void setListeners() {
        //没有进行搜索的时候，也要添加对item单击监听
        setItemClick(mData);
        /**
         * 对编辑框添加文本改变监听，搜索的具体功能是在这里实现
         * 文字改变的时候进行搜索，关键方法是重写onTextChanged()方法
         */
        et_search.addTextChangedListener(new TextWatcher() {
            //每次EditText文本改变之前的时候，会回调这个方法
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {
                //s     输入框中改变前的字符串信息
                //start 输入框中改变前的字符串的起始位置
                //count 输入框中改变前后的字符串改变数量一般为0
                //after 输入框中改变后的字符串与起始位置的偏移量
            }
            //每次EditText文本改变的时候，会回调这个方法
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                //第一个参数s 的含义: 输入框中改变后的字符串信息
                //start 输入框中改变后的字符串的起始位置
                //before 输入框中改变前的字符串的位置 默认为0
                //count 输入框中改变后的一共输入字符串的数量
                if (madapter != null) {
                    madapter.getFilter().filter(s);
                }
            }
            //每次EditText文本改变之后的时候，会回调这个方法
            @Override
            public void afterTextChanged(Editable s) {
                //edit  输入结束呈现在输入框中的信息
            }
        });
    }

    private void setItemClick(List<drugList> filter_list) {
        mdlistview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                TextView t = (TextView) view.findViewById(R.id.mdobjectId);
                Intent it = new Intent(getActivity(), DrugActivity.class);
                it.putExtra("objectId", t.getText().toString());
                startActivity(it);
                madapter.notifyDataSetChanged();
            }
        });
    }
}
